package com.mh.entity;

import java.io.Serializable;
import java.time.LocalDateTime;

public class CheckCode implements Serializable {

    //验证字符
    private String code;
    //验证码过期时间
    private LocalDateTime expireTime;

    //空参
    public CheckCode() {
    }
    //1参
    public CheckCode(String code) {
        //默认验证码,60秒后过期-->调用下面的2个参数构造
        this(code,60);
    }
    //2参
    public CheckCode(String code, Integer inputExpireTime) {
        this.code = code;
        /**
         *  LocalDateTime.now()：获取当前时间
         *  .plusSeconds在当前时间的基础上,+ expireTime秒,得到验证码的过期时间
         *  最终,将计算出的过期时间赋值给当前对象的expireTime属性
         */
        this.expireTime = LocalDateTime.now().plusSeconds(inputExpireTime);
    }
    //是否过期-->过期返回true,未过期返回false
    public boolean isExpired(){
        /** this.expireTime: 当前类属性 LocalDateTime expireTime
         *  isBefore(): LocalDateTime类的一个方法,用于比较两个时间点的先后顺序
         *  LocalDateTime.now(): 获取当前系统时间，返回一个 LocalDateTime 对象
         *  time1.isBefore(time2)--> 如果time1在time2之前,返回true
         *
         *  如果expireTime(过期时间)在当前时间之前,说明验证码已经过期,返回true
         *  如果expireTime在当前时间之后或等于当前时间,说明验证码未过期,返回false
         */
        return this.expireTime.isBefore(LocalDateTime.now());
    }

    //set(),get()
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public LocalDateTime getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(LocalDateTime expireTime) {
        this.expireTime = expireTime;
    }
}
